package com.wondream.myframework.app.common.util;

import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.joda.time.LocalDate;
import org.joda.time.LocalDateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

/**
 * 日期格式化工具类
 */
public class DateTimeUtil {

    /**
     * 格式 yyyy年MM月dd日 HH:mm:ss
     *
     * @param dateTime
     * @return String
     */
    public static String getDateTimeDisplayString(java.time.LocalDateTime dateTime) {
        java.time.format.DateTimeFormatter dtf2 = java.time.format.DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss");
        String strDate2 = dtf2.format(dateTime);

        return strDate2;
    }

    /**
     * 格式日期 yyyy-MM-dd
     *
     * @param
     * @return String
     */
    public static String getCurrentDateStr() {
        //当前本地日期,没有时区
        LocalDate date = LocalDate.now();
        //时间日期格式化，表达式与熟知的一样
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd");
        //2018-11-29
        String dateStr = fmt.print(date);
        return dateStr;
    }

    /**
     * 格式日期 yyyy-MM-dd HH:mm:ss
     *
     * @param
     * @return String
     */
    public static String getCurrentTimeStr() {
        //当前日期时间，没有时区
        LocalDateTime now = LocalDateTime.now();
        //日期格式化，通用时间表达式
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
        //2018-11-29 08:08:24
        String nowStr = fmt.print(now);
        return nowStr;
    }

    /**
     * 解析格式日期 yyyy-MM-dd HH:mm:ss
     *
     * @param
     * @return DateTime
     */
    public static DateTime getDateFromStr(String dateStr) {
        //根据时间表达式生成DateTimeFormatter对象
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
        //2019-10-28T10:23:12.000+08:00
        DateTime dateTime = fmt.parseDateTime(dateStr);
        return dateTime;
    }

    /**
     * 解析格式日期 yyyy-MM-dd HH:mm:ss
     *
     * @param
     * @return DateTime
     */
    public static DateTime getDateFromStr2(String dateStr) {
        //日期解析，通用时间表达式
        DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss").withZone(DateTimeZone.forOffsetHours(6));
        //2019-10-28T10:23:12.000+06:00
        DateTime dateTime = fmt.parseDateTime(dateStr);
        return dateTime;
    }


}
